/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package stories;

import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
import cucumber.runtime.PendingException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.internal.runners.statements.Fail;
import ventasautomotrices.AdminConexion;
import static org.junit.Assert.*;
import ventasautomotrices.Empleado;
import ventasautomotrices.PagarSueldo;

/**
 *
 * @author granyatee
 */
public class PagarSueldoStepDef {
    AdminConexion ac = new AdminConexion();
    PagarSueldo pags = new PagarSueldo(null, false);
    
    @Given("^un vendedor registrado con codigo (\\d+)$")
    public void un_vendedor_registrado_con_codigo(int idVendedor ) throws Throwable {
        // Express the Regexp above with the code you wish you had
        //throw new PendingException();
        ac.abrirConexionBDD();
        PreparedStatement ps = ac.prepararConsulta("SELECT idVendedor, Nombre, Apellido FROM AutoVentas.Empleado WHERE idVendedor = ?");
        ps.setInt(1, idVendedor);
        ResultSet rs = ps.executeQuery();
        if( !rs.next() ){
            fail("No Existe el vendedor codigo 2");
        }
        ac.cerrarConexionBDD();
		Empleado e = new Empleado();
		e.setIdEmpleado(2);
		pags.setEmpleado(e);
    }

    @When("^busco los datos del empleado codigo (\\d+)$")
    public void busco_los_datos_del_empleado_codigo(int idVendedor) throws Throwable {
        pags.txtCodEmpleado.setText( String.valueOf(idVendedor) );
		pags.mostrarDetallesEmpleado();
		
    }

    @When("^calculo el sueldo del empleado$")
    public void calculo_el_sueldo_del_empleado() throws Throwable {
		pags.calcularSueldoEmpleado();
    }

    @When("^ingreso el No. de cheque \"([^\"]*)\" del Banco \"([^\"]*)\" y los guardo$")
    public void ingreso_el_No_de_cheque_de_la_cuenta_del_Banco_y_los_guardo(String noCheque, String banco) throws Throwable {
        pags.txtNoCheque.setText( String.valueOf(noCheque));
		pags.txtNombreBanco.setText( String.valueOf( banco ) );
		pags.guardarCheque();
    }
	
	@Then("^el sistema debe registrar el pago al vendedor codigo (\\d+) con el No. de cheque \"([^\"]*)\" del Banco \"([^\"]*)\" en el mes (\\d+) con el monto \"([^\"]*)\"$")
	public void el_sistema_debe_registrar_el_pago_al_vendedor_codigo_con_el_No_de_cheque_del_Banco_en_el_mes_con_el_monto(int idVendedor, String noCheque, String banco, int mes, String monto) throws Throwable {
		ac.abrirConexionBDD();
		
		PreparedStatement ps = ac.prepararConsulta("SELECT idVendedor, noCheque, Banco, Monto FROM AutoVentas.Sueldo WHERE idVendedor=? AND noCheque=? AND Banco=? AND Monto=?");
		ps.setInt(1, idVendedor);
		ps.setString(2, noCheque);
		ps.setString(3, banco);
		ps.setString(4, monto);
		System.out.println(ps.toString());
		ResultSet rs = ps.executeQuery();
		if( !rs.next() ){
			fail("No se guardó el pago de sueldo");
		}
		
		ac.cerrarConexionBDD();
	}

    @Then("^el sistema debe mostrar un mensaje de guardado con exito$")
    public void el_sistema_debe_mostrar_un_mensaje_de_guardado_con_exito() throws Throwable {
        
    }

}
